package xyz.hubery.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import xyz.hubery.domain.TradeArea;
import com.baomidou.mybatisplus.extension.service.IService;
import xyz.hubery.dto.TradeAreaAndMarketDTO;
import xyz.hubery.dto.TradeAreaDTO;
import xyz.hubery.dto.TradeMarketDTO;
import xyz.hubery.vo.TradeAreaMarketVo;

import java.util.List;
import java.util.Map;

/**
* @author huber
* @description 针对表【trade_area(交易区)】的数据库操作Service
* @createDate 2025-10-16 07:45:08
*/
public interface TradeAreaService extends IService<TradeArea> {

    /**
     * 分页查询交易区域
     * @param page 分页参数
     * @param name 交易区域名称
     * @param status 交易区域状态
     * @return
     */
    Page<TradeArea> findPage(Page<TradeArea> page, String name, Byte status);

    /**
     * 查询交易区域,以及区域下的市场
     * @return
     */
    List<TradeAreaMarketVo> findTradeAreaMarket();

    /**
     * 获取用户收藏的市场
     * @param userId 用户ID
     * @return
     */
    List<TradeAreaMarketVo> getUserFavoriteMarkets(Long userId);


    /**
     * 获取所有的交易区域及其管辖的交易市场
     * @return
     */
    List<TradeAreaAndMarketDTO> listAreaAndMarkets();
}
